<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 静态方法可以帮助到我们很多很多
    let lesson = [
        {name:'Vue.js',price:200},
        {name:'Node.js',price:180},
        {name:'mysql',price:190}
    ]
    class les{
        constructor(name){
            this.modle = name
        }
        get price(){
            return this.modle.price
        }
        // 批量获取对象的静态方法
        static cretobj(obj){
            return obj.map(item=>{
                return new les(item)
            })
        }
        // 获取价格最贵的方法
        static getmax(obj){
            return obj.sort((a,b)=>{
                return b.price - a.price  //这里使用到了访问器  所以可以直接使用属性的方式来访问
            })[0].price
        }
        // 获取总和的方法
        static getallprice(obj){
            return obj.reduce((pre,item)=>{
                return pre+item.price
            },0)
        }
    }
    let content = les.cretobj(lesson)
    // 使用静态方法要类名.静态方法 而不是实例化对象.静态方法
    console.log(content)  // [les, les, les]  三个类对象

    // 通过静态方法获取出价格最高的课程
    console.log(les.getmax(content)) // 200

    console.log(les.getallprice(content))  //570  
</script>
</html>